package Q16_10_Living_People; import java.util.Random; public class QuestionA { public static int maxAliveYear(Person[] people, int min, int max) { int maxAlive = 0; int maxAliveYear = min; for (int year = min; year <= max; year++) { int alive = 0; for (Person person : people) { if (person.birth <= year && year <= person.death) { alive++; } } if (alive > maxAlive) { maxAlive = alive; maxAliveYear = year; } } return maxAliveYear; } public static void main(String[] args) { int n = 10000; int first = 0; int last = 200000; Random random = new Random(); Person[] people = new Person[n]; for (int i = 0; i < n; i++) { int birth = first + random.nextInt(last - first); int death = birth + random.nextInt(last - birth); people[i] = new Person(birth, death); //System.out.println(birth + ", " + death); } System.out.println(n); for (int i = 0; i < n; i++) { //int birth = first + random.nextInt(last - first); //int death = birth + random.nextInt(last - birth); //people[i] = new Person(birth, death); System.out.println(people[i].birth); } System.out.println(n); for (int i = 0; i < n; i++) { //int birth = first + random.nextInt(last - first); //int death = birth + random.nextInt(last - birth); //people[i] = new Person(birth, death); System.out.println(people[i].death); } int year = maxAliveYear(people, first, last); System.out.println(year); } }